<html>
<head><meta charset="utf-8"><title>Status of new-llvm-pass-manager · t-compiler/wg-llvm · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/index.html">t-compiler/wg-llvm</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/Status.20of.20new-llvm-pass-manager.html">Status of new-llvm-pass-manager</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="204752367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/Status%20of%20new-llvm-pass-manager/near/204752367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Tolnay <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/Status.20of.20new-llvm-pass-manager.html#204752367">(Jul 23 2020 at 01:28)</a>:</h4>
<p>I am considering enabling <code>-Znew-llvm-pass-manager</code> in a big codebase to work around <a href="https://github.com/rust-lang/rust/issues/66617">https://github.com/rust-lang/rust/issues/66617</a> which has been extremely troublesome for us, but I wasn't able to find any kind of tracking issue. What is the current state of this feature and anything I should be aware of? limitations, platform compatibility, etc</p>



<a name="204765361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/Status%20of%20new-llvm-pass-manager/near/204765361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mati865 <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/Status.20of.20new-llvm-pass-manager.html#204765361">(Jul 23 2020 at 06:54)</a>:</h4>
<p>You should measure it didn't cause unacceptable performance loss for you. Platform compatibility should not change AFAIK but it's less tested with Rust so you know.</p>



<a name="204767288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/Status%20of%20new-llvm-pass-manager/near/204767288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> andjo403 <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/Status.20of.20new-llvm-pass-manager.html#204767288">(Jul 23 2020 at 07:26)</a>:</h4>
<p><span class="user-mention" data-user-id="119235">@David Tolnay</span>  did you see my comment about the workaround that I found <a href="https://github.com/rust-lang/rust/issues/66617#issuecomment-660722837">https://github.com/rust-lang/rust/issues/66617#issuecomment-660722837</a> by marking one function with inline the compile time for 1 CGU and 2 CGUs was almost the same.<br>
do not know if it will work in your case but maybe something to look at.<br>
my thinking when adding inline is that compiling with 1 CGU was fast so some info was missing and by adding inline to a function it is copied in to all CGUs so I marked one of the functions that was only declared in the slow CGU with inline and the compilation was fast. <br>
have not been able to understand why it changes the compile time but maybe have something to do with having all the defines for the calls of functions in the recursive functions.</p>



<a name="204859956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/Status%20of%20new-llvm-pass-manager/near/204859956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> andjo403 <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/Status.20of.20new-llvm-pass-manager.html#204859956">(Jul 23 2020 at 22:19)</a>:</h4>
<p>changing to the new pass manager  feels a bit iffy when reading that a lot of test is not passing in llvm <a href="http://lists.llvm.org/pipermail/llvm-dev/2020-July/143666.html">http://lists.llvm.org/pipermail/llvm-dev/2020-July/143666.html</a><br>
and also unclear how mush test that is executed with the new pass manager</p>



<a name="204864007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/Status%20of%20new-llvm-pass-manager/near/204864007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/Status.20of.20new-llvm-pass-manager.html#204864007">(Jul 23 2020 at 23:12)</a>:</h4>
<p>The first reply is "we should switch to NPM by default because many people use it anyway", which is something at least.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>